home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 22 / Amiga Format AFCD22 (Jan 1998, Issue 106).iso / -readerstuff- / d_keletsekis / tools / filereq.gc < prev    next >
Text File  |  1997-10-03  |  5KB  |  254 lines

  1. G4C
  2.  
  3. ; FILEREQ.GC
  4. ; A multiselect File Requester with Favourites etc..
  5.  
  6. ; GuiLoad guis:tools/filereq.gc  GuiName Routine Path FavFile  -or
  7. ; GuiOpen filereq.gc  GuiName Routine Path FavFile
  8.  
  9. ; GuiName  - Name of your gui
  10. ; Routine  - Routine in your gui that will be called
  11. ; Path     - (optional) path to open at - if you want..
  12. ; FavFile  - (optional) name of the Favourites file
  13.  
  14. ; ====================================================================
  15.  
  16. ;               Globals
  17.  
  18. ; ====================================================================
  19.  
  20. WINBIG 185 16 291 213 'Choose file(s) :'
  21. WinType 11110001
  22. varpath ''
  23.  
  24. BOX 0 0 0 0 in icondrop
  25.  
  26.  
  27. ; ====================================================================
  28.  
  29. ;               System events
  30.  
  31. ; ====================================================================
  32.  
  33. xONLOAD  gui routine path favfile 
  34. guiopen $gui $routine $path $favfile
  35.  
  36. xONRELOAD  gui routine path favfile 
  37. guiopen $gui $routine $path $favfile
  38.  
  39.  
  40. XONOPEN  gui routine path favfile 
  41. setgad filereq.gc 52/53 off
  42. if $path > ''
  43.    lvuse filereq.gc 1
  44.    LVDir '#$path'
  45.    update filereq.gc 2 $$lv.dir      
  46. endif
  47. if $favfile = ""
  48.    favfile = guis:tools/fav/default
  49. endif
  50.  
  51.  
  52. xOnRMB
  53. if $mode = FAV
  54.    setgad filereq.gc 52/53 off
  55.    setgad filereq.gc 2/16 on
  56.    setgad filereq.gc 50/51 on
  57.    lvuse filereq.gc 1
  58.    lvmode DIR
  59.    lvdir #$$lv.dir
  60. else
  61.    status
  62. endif
  63.  
  64.  
  65. ; ====================================================================
  66.  
  67. ;               The Listview
  68.  
  69. ; ====================================================================
  70.  
  71. XLISTVIEW 9 5 213 190 "" filename "" 10 DIR
  72. GADID 1
  73. GADFONT #mono 8 000
  74. if $mode = FAV
  75.    setgad filereq.gc 52/53 off
  76.    setgad filereq.gc 2/16 on
  77.    setgad filereq.gc 50/51 on
  78.    mode = ''
  79.    lvmode DIR
  80.    lvdir #$filename
  81. else
  82.    guiclose filereq.gc
  83.    gosub $gui $routine $filereq.gc/filename  ; Give FULL variable path!
  84. endif
  85.  
  86.  
  87. ; directory hook
  88. xlvdirhook 1
  89. update filereq.gc 2 $filename       
  90.  
  91.  
  92. ; single click hook
  93. xlvhook 1
  94. update filereq.gc 2 $filename
  95.  
  96.  
  97. XTEXTIN 9 194 273 14 "" txtfile "" 100
  98. GADID 2
  99. gadhelp 'Shows file chosen - Change the name & hit enter, to Rename it'
  100. ifexists file $txtfile
  101.    guiclose filereq.gc
  102.    gosub $gui $routine $filereq.gc/filename
  103. else
  104.    ezreq 'Rename $filename\nto $txtfile ?' Rename|CANCEL choice
  105.    if $choice = 1
  106.       rename $filename $txtfile
  107.       lvuse filereq.gc 1
  108.       lvdir refresh
  109.    endif
  110. endif
  111.  
  112.  
  113. ; ====================================================================
  114.  
  115. ;               Listview control buttons
  116.  
  117. ; ====================================================================
  118.  
  119. XBUTTON 224 5 58 14 "Parent"
  120. gadid 10
  121. gadhelp 'CD to Parent of current dir'
  122. lvuse filereq.gc 1
  123. LVDir parent
  124. update filereq.gc 2 $$lv.dir      
  125.  
  126.  
  127. XBUTTON 224 19 58 14 "Root"
  128. gadid 11
  129. gadhelp 'CD to Root of current dir'
  130. lvuse filereq.gc 1
  131. LVDir root
  132. update filereq.gc 2 $$lv.dir      
  133.  
  134.  
  135. XBUTTON 224 33 58 14 "Disks"
  136. gadid 12
  137. gadhelp 'Show device list'
  138. lvuse filereq.gc 1
  139. LVDir disks
  140. update filereq.gc 2 $$lv.dir      
  141.  
  142.  
  143. XBUTTON 224 47 58 14 "All"
  144. gadid 13
  145. gadhelp 'Select all items'
  146. lvuse filereq.gc 1
  147. LVDir all
  148. update filereq.gc 2 $$lv.dir      
  149.  
  150.  
  151. XBUTTON 224 61 58 14 "None"
  152. gadid 14
  153. gadhelp 'Unselect all items'
  154. lvuse filereq.gc 1
  155. LVDir none
  156. update filereq.gc 2 $$lv.dir      
  157.  
  158. ; ====================================================================
  159.  
  160. ;               Copy & delete
  161.  
  162. ; ====================================================================
  163.  
  164. XBUTTON 224 92 58 14 "Copy"
  165. gadid 14
  166. gadhelp 'Copy selected files (destination chosen through requester)'
  167. dest = ''
  168. ReqFile -1 -1 300 -40 'Choose destination:' DIR dest ''
  169. if $dest > ' '
  170.    lvuse filereq.gc 1
  171.    lvaction copy $dest
  172. endif
  173.  
  174. XBUTTON 224 78 58 14 "Delete"
  175. gadid 14
  176. gadhelp 'Delete selected files'
  177. lvuse filereq.gc 1
  178. lvaction delete REQ
  179.  
  180.  
  181. ; ====================================================================
  182.  
  183. ;               Favourites control
  184.  
  185. ; ====================================================================
  186.  
  187. XBUTTON 224 110 58 14 "Fav"
  188. gadid 50
  189. gadhelp 'Shows Favourites listing ($favfile\)'
  190. setgad filereq.gc 2/16 off
  191. setgad filereq.gc 50/51 off
  192. setgad filereq.gc 52/53 on
  193. lvuse filereq.gc 1
  194. lvmode MULTI
  195. lvchange $favfile
  196. lvsort asc
  197. mode = FAV
  198.  
  199.  
  200. XBUTTON 224 124 29 14 "+"       ; add to favourites
  201. gadid 51                        ; create file if it doesn't exist
  202. gadhelp 'Add current dir to Favourites'
  203. ifexists file $favfile
  204.    ; ok
  205. else
  206.    .dummy = 'GUIs:'             ; got to have this one :)
  207.    copy env:.dummy $favfile
  208. endif
  209. lvuse filereq.gc 1
  210. append $favfile '\n$$lv.dir'
  211.  
  212.  
  213. XBUTTON 253 124 29 14 "-"     ; delete from favourites
  214. gadid 52
  215. gadhelp 'Deleted selected favourites entries'
  216. lvuse filereq.gc 1
  217. lvmulti first
  218. while $filename > ''
  219.     lvdel -1
  220.     lvmulti first      ; since we deleted the old 1st one
  221. endwhile
  222.  
  223.  
  224. XBUTTON 224 138 58 14 "Save"  ; save favourites
  225. gadid 53
  226. gadhelp 'Save Favourites as $favfile'
  227. lvuse filereq.gc 1
  228. lvsave $favfile
  229.  
  230. ; ====================================================================
  231.  
  232. ;               OK & Cancel
  233.  
  234. ; ====================================================================
  235.  
  236. XBUTTON 224 157 58 19 "OK"
  237. gadid 15
  238. gadhelp 'Selected files will be sent to calling gui'
  239. guiclose filereq.gc
  240. lvuse filereq.gc 1
  241. lvmulti first
  242. while $filename > ''
  243.    gosub $gui $routine $filereq.gc/filename
  244.    lvmulti off
  245.    lvmulti next
  246. endwhile
  247.  
  248. XBUTTON 224 176 58 17 "Cancel"
  249. gadid 16
  250. guiclose filereq.gc
  251.  
  252.  
  253.  
  254.